package listbyorder.access001_100.test55;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/1 16:47
 */
public class Solution1 {

    // 方法一： 自己想的方法
    // 1 用一个maxPos存储当前可以到达的最大位置
    // 2 如果遍历到某一个位置的元素是0的时候，查看当前的maxPos是否大于当前位置的索引
    // 3 如果不大于，因为当前位置的元素是0，所以不可能继续向下走，直接false
    public boolean canJump(int[] nums) {
        if (nums.length < 2) return true;
        if (nums[0] == 0) return false;
        int maxPos = 0;
        int cur = 0;
        while (cur < nums.length - 1) {
            maxPos = Math.max(maxPos, nums[cur] + cur);
            if (nums[cur] == 0 && maxPos == cur) {
                return false;
            }
            cur++;
        }
        return true;
    }
}
